package org.yohann.ai.service;

import jakarta.annotation.Resource;
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.ai.chat.prompt.PromptTemplate;
import org.springframework.stereotype.Service;

import java.util.Map;

@Service
public class ReplyService {

    @Resource(name = "emailChat")
    private ChatClient chatClient;

    public String replyEmail(String email, String content) {
        PromptTemplate promptTemplate = new PromptTemplate("""
                        你是一名专业的邮件回复助手，负责分析客户邮件并生成精准回复。请严格遵循以下规则：

                        1. 邮件分析：
                           - 提取用户关键信息（用户id/问题类型/问题描述等等）

                        2. 工具使用：
                           - 通过工具获取全部需求类型并识别客户需求类型
                           - 通过工具获取问题类型回复邮件模板
                           - 通过工具获取用户的实时信息，编辑邮件具体内容
                           - 通过工具给客户回复邮件
                           
                        3. 特别注意：
                           - 投诉类邮件需要使用工具创建投诉工单
                           - 处理不了的情况使用工具转人工处理，并回复客户已转人工
                                
                收到{email}发来的邮件内容：
                {content}
                """);

        return chatClient.prompt(
                        promptTemplate.create(Map.of(
                                "email", email,
                                "content", content
                        )))
                .call()
                .content();
    }
}
